package mx.ipn.persistencia.dao;

import java.util.ArrayList;

import mx.ipn.to.BitacoraServicioTO;

public interface BitacoraServicioDAO {
	public int insertBitacoraServicio(
			BitacoraServicioTO bitacoraServicioTO);

	public short updateBitacoraServicio(BitacoraServicioTO bitacoraServicioTO);

	public BitacoraServicioTO findBitacoraServicioById(int idOperacion);

	public ArrayList<BitacoraServicioTO> selectBitacoraServicio();
	
	public ArrayList<BitacoraServicioTO> selectBitacoraServicioByRangoFechaHora(java.sql.Date inicioFecha, java.sql.Date finFecha,
			java.sql.Time inicioHora, java.sql.Time finHora);

	public ArrayList<BitacoraServicioTO> selectBitacoraServicioByDia(java.sql.Date dia);
	
	public ArrayList<BitacoraServicioTO> selectByRangoFechaHoraTelefono(
			java.sql.Date inicioFecha, java.sql.Date finFecha,
			java.sql.Time inicioHora, java.sql.Time finHora,String telefono);

	public ArrayList<BitacoraServicioTO> selectByRangoFechaHoraTiempo(
			java.sql.Date inicioFecha, java.sql.Date finFecha, 
			java.sql.Time inicioHora, java.sql.Time finHora,
			int inicioTiempo, int finTiempo);

	public ArrayList<BitacoraServicioTO> selectByRangoFechaHoraFactura(
			java.sql.Date inicioFecha, java.sql.Date finFecha,
			java.sql.Time inicioHora, java.sql.Time finHora, boolean factura);

	public BitacoraServicioTO selectByRangoFechaHoraTelefonista(
			java.sql.Date inicioFecha, java.sql.Date finFecha,
			java.sql.Time inicioHora, java.sql.Time finHora, int idTelefonista);

	public BitacoraServicioTO selectByRangoFechaHoraOperadora(
			java.sql.Date inicioFecha, java.sql.Date finFecha,
			java.sql.Time inicioHora, java.sql.Time finHora, int idOperadora);

	public BitacoraServicioTO selectByRangoFechaHoraFormaPago(
			java.sql.Date inicioFecha, java.sql.Date finFecha,
			java.sql.Time inicioHora, java.sql.Time finHora, short idFormaPago);

	public BitacoraServicioTO selectByRangoFechaHoraCliente(
			java.sql.Date inicioFecha, java.sql.Date finFecha,
			java.sql.Time inicioHora, java.sql.Time finHora, int idCliente);

	public ArrayList<BitacoraServicioTO> selectByRangoFechaHoraRangoUnidad(
			java.sql.Date inicioFecha, java.sql.Date finFecha,
			java.sql.Time inicioHora, java.sql.Time finHora, int inicioEconomico,
			int finEconomico);

	public BitacoraServicioTO selectByRangoFechaHoraRangoUnidadStatus(
			java.sql.Date inicioFecha, java.sql.Date finFecha,
			java.sql.Time inicioHora, java.sql.Time finHora, int inicioEconomico,
			int finEconomico, short idStatus);

	public BitacoraServicioTO selectByRangoFechaHoraRangoUnidadStatusTipoServicio(
			java.sql.Date inicioFecha, java.sql.Date finFecha,
			java.sql.Time inicioHora, java.sql.Time finHora, int inicioEconomico,
			int finEconomico, short status,int idTipoServicio);

}
